package com.java.program_questions;

import java.util.Scanner;

/**
 * 问题：有n个人围成一圈，顺序排号，从第一个人开始报数（从1到3报数），凡报到3的人退出圈子。问最后留下的是原来第几号的那位
 * 分析：
 */
public class Question37 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入玩游戏的人数：");
        int n = sc.nextInt();

        int[] a = new int[n];
        int j = 0;
        // 赋予游戏者编号123123...
        for (int i = 0; i < n; i++) {
            j++;
            a[i] = j;
            if (j == 3) {
                j = 0;
            }
        }

        for (int k = 0; k < n; k++) {
            j = 0;
            for (int i = 0; i < n; i++) {
                if (a[i] != 3) {
                    j++;
                    a[i] = j;
                    if (j == 3) {
                        j = 0;
                    }
                }
            }
        }

        System.out.print("最后留下来的是：");
        for (int i = 0; i < n; i++) {
            j = i + 1;
            if (a[i] != 3) {
                System.out.print("第" + j + "位 ");
            }
        }
    }
}
